#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""修复问题过滤器，支持更灵活的规则"""

import sys

print("=== 修复问题过滤器 ===")

# 备份原文件
import shutil
shutil.copy("app.py", "app.py.backup")
print("已备份原文件为 app.py.backup")

# 读取文件
with open("app.py", "r", encoding="utf-8") as f:
    content = f.read()

# 方案1：支持单问号（更实用）
if "--single" in sys.argv:
    print("\n应用方案1：支持单问号")
    new_content = content.replace(
        "double_question_patterns = ['??', '？？', '?？', '？?']",
        "double_question_patterns = ['??', '？？', '?？', '？?', '?', '？']"
    )
    with open("app.py", "w", encoding="utf-8") as f:
        f.write(new_content)
    print("✓ 已修改为支持单问号和双问号")

# 方案2：使用正则表达式（更智能）
elif "--smart" in sys.argv:
    print("\n应用方案2：智能问题识别")
    # 替换整个is_question方法
    new_method = '''    @staticmethod
    def is_question(comment: str) -> bool:
        """
        判断评论是否为问题
        支持：
        - 单/双问号结尾
        - 包含疑问词（什么、怎么、为什么等）
        """
        import re
        comment = comment.strip()
        
        if not comment:
            return False
        
        # 检查问号结尾
        if comment.endswith(('?', '？', '??', '？？', '?？', '？?')):
            return True
        
        # 检查疑问词
        question_patterns = [
            r'(什么|怎么|为什么|哪里|哪个|谁|多少|几个|啥)',
            r'(是不是|有没有|能不能|可以吗|行吗|对吗)',
            r'(吗[?？]?$|呢[?？]?$|么[?？]?$)'
        ]
        
        for pattern in question_patterns:
            if re.search(pattern, comment):
                return True
        
        return False'''
    
    # 找到方法位置并替换
    import re
    pattern = r'@staticmethod\s+def is_question\(comment: str\) -> bool:.*?return last_two in double_question_patterns'
    new_content = re.sub(pattern, new_method, content, flags=re.DOTALL)
    
    with open("app.py", "w", encoding="utf-8") as f:
        f.write(new_content)
    print("✓ 已应用智能问题识别")

# 方案3：临时禁用过滤（调试用）
elif "--disable" in sys.argv:
    print("\n应用方案3：临时禁用过滤")
    new_content = content.replace(
        "if QuestionExtractor.is_question(comment_data[\"content\"]):",
        "if True:  # 临时禁用过滤"
    )
    with open("app.py", "w", encoding="utf-8") as f:
        f.write(new_content)
    print("✓ 已禁用问题过滤，所有评论都会被记录")

else:
    print("\n使用方法：")
    print("  python3 fix_question_filter.py --single   # 支持单问号（推荐）")
    print("  python3 fix_question_filter.py --smart    # 智能识别问题")
    print("  python3 fix_question_filter.py --disable  # 禁用过滤（调试）")
    print("\n恢复原始版本：")
    print("  mv app.py.backup app.py")